/*
 * Copyright (c) 2007 Norman Brandinger <norm@goes.com>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

/*
 * Generated by asn1c-0.9.22 (http://lionet.info/asn1c)
 * From ASN.1 module "T1S1-LAES-VoP-Abstract-Syntax-Module"
 * 	found in "T1S1-LAES-VoP-Abstract-Syntax-Module.asn"
 * 	`asn1c -funnamed-unions -findirect-choice -fbless-SIZE -fcompound-names -fnative-types`
 */

#ifndef	_SupportedProtocols_H_
#define	_SupportedProtocols_H_


#include <asn_application.h>

/* Including external dependencies */
#include <constr_CHOICE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum SupportedProtocols_PR {
	SupportedProtocols_PR_NOTHING,	/* No components present */
	SupportedProtocols_PR_nonStandardData,
	SupportedProtocols_PR_h310,
	SupportedProtocols_PR_h320,
	SupportedProtocols_PR_h321,
	SupportedProtocols_PR_h322,
	SupportedProtocols_PR_h323,
	SupportedProtocols_PR_h324,
	SupportedProtocols_PR_voice,
	SupportedProtocols_PR_t120_only,
	/* Extensions may appear below */
	SupportedProtocols_PR_nonStandardProtocol,
	SupportedProtocols_PR_t38FaxAnnexbOnly
} SupportedProtocols_PR;

/* Forward declarations */
struct NonStandardParameter;
struct H310Caps;
struct H320Caps;
struct H321Caps;
struct H322Caps;
struct H323Caps;
struct H324Caps;
struct VoiceCaps;
struct T120OnlyCaps;
struct NonStandardProtocol;
struct T38FaxAnnexbOnlyCaps;

/* SupportedProtocols */
typedef struct SupportedProtocols {
	SupportedProtocols_PR present;
	union {
		struct NonStandardParameter	*nonStandardData;
		struct H310Caps	*h310;
		struct H320Caps	*h320;
		struct H321Caps	*h321;
		struct H322Caps	*h322;
		struct H323Caps	*h323;
		struct H324Caps	*h324;
		struct VoiceCaps	*voice;
		struct T120OnlyCaps	*t120_only;
		/*
		 * This type is extensible,
		 * possible extensions are below.
		 */
		struct NonStandardProtocol	*nonStandardProtocol;
		struct T38FaxAnnexbOnlyCaps	*t38FaxAnnexbOnly;
	};
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SupportedProtocols_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_SupportedProtocols;

#ifdef __cplusplus
}
#endif

/* Referred external types */
#include "NonStandardParameter.h"
#include "H310Caps.h"
#include "H320Caps.h"
#include "H321Caps.h"
#include "H322Caps.h"
#include "H323Caps.h"
#include "H324Caps.h"
#include "VoiceCaps.h"
#include "T120OnlyCaps.h"
#include "NonStandardProtocol.h"
#include "T38FaxAnnexbOnlyCaps.h"

#endif	/* _SupportedProtocols_H_ */
